home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 60.zip / BS1 part 60 / Kick Pascal v2.10 d2.adf / SYSPROG / GadgetDemo.p < prev    next >
Text File  |  1990-11-01  |  9KB  |  201 lines

  1. Program GadgetDemo;
  2. {$incl 'intuition.lib' }
  3.  
  4. Type
  5.   BorDatTyp = Array[1..10] of integer;  { Typ für Borderdata }
  6.   ImgDatTyp = Array[1..12] of Long;     { Typ für Imagedata }
  7. Var
  8.   Win: ^Window;
  9.   Msg: ^IntuiMessage;
  10.   Gad1, Gad2, Gad3, Gad4, Gad5: Gadget;
  11.   Tex1, Tex2, Tex3, Tex4, Tex5: IntuiText;
  12.   Bor1, Bor2,             Bor5: Border;
  13.   BDt1, BDt2,             BDt5: BorDatTyp;
  14.   Img1, Img2, Img3, Img4:       Image;
  15.   IDt1, IDt2, IDt3, IDt4:       ^ImgDatTyp;
  16.  
  17.   AktGad: ^Gadget;
  18.   Ende: Boolean;
  19.  
  20.  Procedure Ausgabe(t: Str);
  21.    { gibt den Text "t" im Window aus }
  22.    Var it: IntuiText;
  23.    Begin
  24.     it:=IntuiText(1,0,1,0,0,Nil,t,Nil);
  25.     PrintIText(Win^.RPort, ^it, 5, 12)
  26.    End;
  27.  
  28.  Begin
  29.    OpenLib(IntBase, 'intuition.library', 0);
  30.    Win:=Open_Window(0, 0, 320, 120, 1, _CLOSEWINDOW+GADGETUP+GADGETDOWN,
  31.         WINDOWSIZING+WINDOWDRAG+WINDOWDEPTH+WINDOWCLOSE+ACTIVATE,
  32.         'GadgetDemo', Nil, 300, 100, 640, 256);
  33.    Gad1:=Gadget(Nil,           { erste Gadget-Struktur: }
  34.                 10,25,         { Position }
  35.                 80,12,         { Größe }
  36.                 GADGHCOMP,     { Gadget wird invertiert }
  37.                 TOGGLESELECT+GADGIMMEDIATE, { Activation Flags }
  38.                 BOOLGADGET,    { Typ }
  39.                 ^Bor1,         { Zeiger auf Borderstruktur }
  40.                 Nil,           { kein Select-Border }
  41.                 ^Tex1,         { Zeiger auf Text }
  42.                 0, Nil, 1, 0); { Nummer 1 }
  43.    Tex1:=IntuiText(1, 0, 0, 16, 3, Nil, 'Toggle', Nil);
  44.    Bor1:=Border(0, 0, 3, 0, 0, 5, ^BDt1, Nil);
  45.    BDt1:=BorDatTyp(-3,-2, 83,-2, 83,14, -3,14, -3,-2);
  46.  
  47.    Gad2:=Gadget(Nil,           { zweite Gadget-Struktur: }
  48.                 10,48,         { Position }
  49.                 80,12,         { Größe }
  50.                 GADGHBOX,      { Gadget wird umrandet }
  51.                 RELVERIFY, { Activation Flags }
  52.                 BOOLGADGET,    { Typ }
  53.                 ^Bor2,         { Zeiger auf Borderstruktur }
  54.                 Nil,           { kein Select-Border }
  55.                 ^Tex2,         { Zeiger auf Text }
  56.                 0, Nil, 2, 0); { Nummer 2 }
  57.    Tex2:=IntuiText(1, 0, 0, 8, 3, Nil, 'Nummer 2', Nil);
  58.    Bor2:=Border(0, 0, 1, 0, 0, 5, ^BDt2, Nil);
  59.    BDt2:=BorDatTyp(-3,-3, 83,-3, 83,14, -3,14, -3,-3);
  60.  
  61.    Gad3:=Gadget(Nil,           { dritte Gadget-Struktur: }
  62.                 200,25,        { Position }
  63.                 32,12,         { Größe }
  64.                 GADGHIMAGE+GADGIMAGE,    { Gadget hat Bild }
  65.                 RELVERIFY+TOGGLESELECT,  { Activation Flags }
  66.                 BOOLGADGET,    { Typ }
  67.                 ^Img1,         { Zeiger auf Imagestruktur }
  68.                 ^Img2,         { Select-Image }
  69.                 ^Tex3,         { Zeiger auf Text }
  70.                 0, Nil, 3, 0); { Nummer 3 }
  71.    Tex3:=IntuiText(1, 0, 0, -100, 3, Nil, 'Mit Bild:', Nil);
  72.    IDt1:=Ptr(Alloc_Mem(SizeOf(ImgDatTyp),2));
  73.    IDt1^:=ImgDatTyp(%00000000000000000000000111000000,
  74.                     %00000000000000000000111111111000,
  75.                     %00000000000000000111111111111111,
  76.                     %00000000000000000000001111100000,
  77.                     %00000000000000000000001111100000,
  78.                     %11111110000000000000001111100000,
  79.                     %11111111110000000000011111100000,
  80.                     %00000011111000000001111111000000,
  81.                     %00000001111111111111111100000000,
  82.                     %00000000011111111111100000000000,
  83.                     %00000000000000000000000000000000,
  84.                     %00000000000000000000000000000000);
  85.    IDt2:=Ptr(Alloc_Mem(SizeOf(ImgDatTyp),2));
  86.    IDt2^:=ImgDatTyp(%00000000000000000000000000000000,
  87.                     %00000000000000000000000000000000,
  88.                     %00000000011111111111100000000000,
  89.                     %00000001111111111111111100000000,
  90.                     %00000011111000000001111111000000,
  91.                     %11111111110000000000011111100000,
  92.                     %11111110000000000000001111100000,
  93.                     %00000000000000000000001111100000,
  94.                     %00000000000000000111111111111111,
  95.                     %00000000000000000000111111111000,
  96.                     %00000000000000000000001111100000,
  97.                     %00000000000000000000000111000000);
  98.    Img1:=Image(0,0,32,12,1,IDt1,1,3,Nil);
  99.    Img2:=Image(0,0,32,12,1,IDt2,1,3,Nil);
  100.  
  101.    Gad4:=Gadget(Nil,           { dritte Gadget-Struktur: }
  102.                 -40,20,        { Position }
  103.                 32,12,         { Größe }
  104.                 GADGHIMAGE+GADGIMAGE+GRELRIGHT,{ relativ zu rechtem Rand }
  105.                 RELVERIFY+TOGGLESELECT,  { Activation Flags }
  106.                 BOOLGADGET,    { Typ }
  107.                 ^Img4,         { Zeiger auf Image }
  108.                 ^Img3,         { Select-Image }
  109.                 ^Tex4,         { Zeiger auf Text }
  110.                 0, Nil, 4, 0); { Nummer 4 }
  111.    Tex4:=IntuiText(3, 0, 0, -4, 3, Nil, ' *4* ', Nil);
  112.    IDt3:=Ptr(Alloc_Mem(SizeOf(ImgDatTyp),2));
  113.    IDt3^:=ImgDatTyp(%11100000000000000000000000000111,
  114.                     %00111100000000000000000000111100,
  115.                     %00000111000000000000000111100000,
  116.                     %00000001111000000000011100000000,
  117.                     %00000000001110000011110000000000,
  118.                     %00000000000011111110000000000000,
  119.                     %00000000000001111110000000000000,
  120.                     %00000000000111000011110000000000,
  121.                     %00000000111100000000011100000000,
  122.                     %00000111100000000000000111100000,
  123.                     %00111100000000000000000000111100,
  124.                     %11100000000000000000000000000111);
  125.    Img3:=Image(0,0,32,12,0,IDt3,1,0,Nil);
  126.    IDt4:=Ptr(Alloc_Mem(SizeOf(ImgDatTyp),2));
  127.    IDt4^:=ImgDatTyp(%00000011111111111111111111000000,
  128.                     %00001111100000000000000111110000,
  129.                     %00111100000000000000000000111100,
  130.                     %01110000000000000000000000001110,
  131.                     %11100000000000000000000000000111,
  132.                     %11100000000000000000000000000111,
  133.                     %11100000000000000000000000000111,
  134.                     %11100000000000000000000000000111,
  135.                     %01110000000000000000000000001110,
  136.                     %00111100000000000000000000111100,
  137.                     %00001111100000000000000111110000,
  138.                     %00000011111111111111111110000000);
  139.    Img4:=Image(0,0,32,12,0,IDt4,1,0,Nil);
  140.  
  141.    Gad5:=Gadget(Nil,           { erste Gadget-Struktur: }
  142.                 250,80,        { Position }
  143.                 -272, -92,     { Größe }
  144.                 GADGHCOMP+GRELWIDTH+GRELHEIGHT,
  145.                 RIGHTBORDER+BOTTOMBORDER+RELVERIFY,
  146.                 BOOLGADGET,    { Typ }
  147.                 ^Bor5,         { Zeiger auf Borderstruktur }
  148.                 Nil,           { kein Select-Border }
  149.                 ^Tex5,         { Zeiger auf Text }
  150.                 0, Nil, 5, 0); { Nummer 5 }
  151.    Tex5:=IntuiText(1, 0, 0, 3, 3, Nil, 'Gadget#5', Nil);
  152.    Bor5:=Border(0, 0, 3, 0, 0, 5, ^BDt5, Nil);
  153.    BDt5:=BorDatTyp(-3,-2, 280,-2, 280,90, -3,90, -3,-2);
  154.  
  155.    AddGadget(Win, ^Gad1, Nil);
  156.    AddGadget(Win, ^Gad2, Nil);
  157.    AddGadget(Win, ^Gad3, Nil);
  158.    AddGadget(Win, ^Gad4, Nil);
  159.    AddGadget(Win, ^Gad5, Nil);
  160.  
  161.    RefreshGadgets(Win^.FirstGadget, Win, Nil);
  162.  
  163.    Ende:=False;
  164.    Repeat
  165.      Msg:=Wait_Port(Win^.UserPort);
  166.      Msg:=Get_Msg(Win^.UserPort);
  167.      Case Msg^.Class Of
  168.        _CLOSEWINDOW: Ende:=True;
  169.        GADGETUP,GADGETDOWN:
  170.                 Begin
  171.                   AktGad:=Msg^.IAddress;
  172.                   Case AktGad^.GadgetID Of
  173.                    1: If (Gad1.Flags and SELECTED)<>0 Then
  174.                         Ausgabe('Gadget 1 an.       ')
  175.                       Else
  176.                         Ausgabe('Gadget 1 aus.      ');
  177.                    2: Ausgabe('Gadget 2 angewählt.');
  178.                    3: If (Gad3.Flags and SELECTED)<>0 Then
  179.                         Ausgabe('Pfeil nach unten   ')
  180.                       Else
  181.                         Ausgabe('Pfeil nach oben    ');
  182.                    4: If (Gad4.Flags and SELECTED)=0 Then
  183.                         Ausgabe('Eingekreist.       ')
  184.                       Else
  185.                         Ausgabe('Durchgestrichen.   ');
  186.                    5: Ausgabe('Unten rechts.       ');
  187.                   Otherwise;
  188.                   End  { inneres CASE }
  189.                 End;
  190.      Otherwise;
  191.      End; { of CASE }
  192.      Reply_Msg(Msg);
  193.    Until Ende;
  194.  
  195.    Close_Window(Win);
  196.    CloseLib(IntBase);
  197.    Free_Mem(Long(IDt1),SizeOf(ImgDatTyp));
  198.    Free_Mem(Long(IDt2),SizeOf(ImgDatTyp));
  199.    Free_Mem(Long(IDt3),SizeOf(ImgDatTyp));
  200.  End.
  201.